﻿namespace CSharpPro._1030;
using System;

// 作业一
public abstract class UserTest
{
    // 定义三个抽象方法（无具体实现）
    public abstract void M1();
    public abstract void M2();
    public abstract void M3();
}


public class UserTestSubClass : UserTest
{
    // 重写M1方法
    public override void M1()
    {
        Console.WriteLine("子类重写的M1方法被调用");
    }

    // 重写M2方法
    public override void M2()
    {
        Console.WriteLine("子类重写的M2方法被调用");
    }

    // 重写M3方法
    public override void M3()
    {
        Console.WriteLine("子类重写的M3方法被调用");
    }
}
public class Demo5
{
    public void TestPrint10()
    {
        
        UserTest testObj = new UserTestSubClass();

        
        testObj.M1();
        testObj.M2();
        testObj.M3();

       
        Console.ReadLine();
    }

    
    //作业2
    public interface UserService
    {
        // 新增方法
        void Add(string userInfo);
    
        // 删除方法（参数为用户ID）
        void Delete(int userId);
    
        // 修改方法（参数为用户ID和新信息）
        void Update(int userId, string newInfo);
    
        // 查询方法（返回用户信息）
        string Query(int userId);
    }

// 实现接口的类
    public class UserServiceImpl : UserService
    {
        // 实现新增方法
        public void Add(string userInfo)
        {
            Console.WriteLine($"执行新增操作：添加用户信息 -> {userInfo}");
        }

        // 实现删除方法
        public void Delete(int userId)
        {
            Console.WriteLine($"执行删除操作：删除ID为 {userId} 的用户");
        }

        // 实现修改方法
        public void Update(int userId, string newInfo)
        {
            Console.WriteLine($"执行修改操作：更新ID为 {userId} 的用户信息 -> {newInfo}");
        }

        // 实现查询方法
        public string Query(int userId)
        {
            // 模拟查询结果
            return $"查询到ID为 {userId} 的用户信息：姓名=测试用户，年龄=25";
        }
    }
    public void TestPrint11()
    {
        UserService userService = new UserServiceImpl();

        // 调用增删改查方法
        userService.Add("姓名=张三，年龄=30");
        userService.Update(1, "姓名=张三，年龄=31（已更新）");
        string userInfo = userService.Query(1);
        Console.WriteLine(userInfo);
        userService.Delete(1);

        // 暂停控制台查看结果
        Console.ReadLine();
    }
    
    
    
}